// Flag1Control.h
#ifndef FLAG1CONTROL_H
#define FLAG1CONTROL_H

#include <QWidget>
#include <QJsonObject>
#include <QHBoxLayout>
#include <QLabel>
#include <QPushButton>
#include <QSpacerItem>
#include <QHash>


#include"DeviceManager.h"
#include <QSharedPointer>

class Flag1Control : public QWidget
{
    Q_OBJECT

public:
    explicit Flag1Control(const QJsonObject &flagDetails,const QString deviceID, QWidget *parent = nullptr);
    ~Flag1Control() override { qDebug() << "[Flag1Control] ~Flag1Control()";}
public slots:
    // 绑定节点后
    void attachToNode(QSharedPointer<DeviceNode> node);
    void pubMsg(QString content);

private:
    void setupControlLayout(const QJsonObject &flagDetails);
    QHash<QString, QString> buttonCommandMap;  // 哈希表存储按钮的命令
    //更改结点架构
    QSharedPointer<DeviceNode> m_node;
    QString mDeviceName;

private slots:
    void onButtonClicked();
};

#endif // FLAG1CONTROL_H
